From c3583237393703110adc2b2562af8cbd1c27662c Mon Sep 17 00:00:00 2001 From: "djm@kirby.fc.hp.com" Date: Thu, 3 Nov 2005 21:37:29 -0600 Subject: [PATCH] Enable test for running_on_xen from modules Signed-off by: Dan Magenheimer --- linux-2.6-xen-sparse/arch/ia64/xen/Makefile | 2 +- linux-2.6-xen-sparse/arch/ia64/xen/xen_ksyms.c | 12 ++++++++++++ linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S | 6 ++++++ linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h | 5 +++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 linux-2.6-xen-sparse/arch/ia64/xen/xen_ksyms.c diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/Makefile b/linux-2.6-xen-sparse/arch/ia64/xen/Makefile index 0ecefd3c89..8a83e57310 100644 --- a/linux-2.6-xen-sparse/arch/ia64/xen/Makefile +++ b/linux-2.6-xen-sparse/arch/ia64/xen/Makefile @@ -2,4 +2,4 @@ # Makefile for Xen components # -obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o xenconsole.o +obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o xenconsole.o xen_ksyms.o diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/xen_ksyms.c b/linux-2.6-xen-sparse/arch/ia64/xen/xen_ksyms.c new file mode 100644 index 0000000000..83cff0b0c4 --- /dev/null +++ b/linux-2.6-xen-sparse/arch/ia64/xen/xen_ksyms.c @@ -0,0 +1,12 @@ +/* + * Architecture-specific kernel symbols + * + * Don't put any exports here unless it's defined in an assembler file. + * All other exports should be put directly after the definition. + */ + +#include +#include + +extern int is_running_on_xen(void); +EXPORT_SYMBOL(is_running_on_xen); diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S b/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S index 6f078961d4..242c5c2f25 100644 --- a/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S +++ b/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S @@ -25,3 +25,9 @@ GLOBAL_ENTRY(early_xen_setup) (p7) mov cr.iva=r10 br.ret.sptk.many rp;; END(xen_init) + +GLOBAL_ENTRY(is_running_on_xen) + movl r9=running_on_xen;; + ld4 r8=[r9];; + br.ret.sptk.many rp;; +END(is_running_on_xen) diff --git a/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h b/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h index e746cd93b4..235197b8f4 100644 --- a/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h +++ b/linux-2.6-xen-sparse/include/asm-ia64/xen/privop.h @@ -36,7 +36,12 @@ #endif #ifndef __ASSEMBLY__ +#ifdef MODULE +extern int is_running_on_xen(void); +#define running_on_xen (is_running_on_xen()) +#else extern int running_on_xen; +#endif #define XEN_HYPER_SSM_I asm("break 0x7"); #define XEN_HYPER_GET_IVR asm("break 0x8"); -- 2.30.2